﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Leasson7 : MonoBehaviour
{
    private void DrawWindow(int id)
    {
        
        switch (id)
        {
            case 1:
                {
                    GUI.Button(new Rect(5, 20, 80, 25), "窗口1");
                    break;
                }
            case 2:
                {
                    GUI.Button(new Rect(5, 20, 80, 25), "窗口2");
                    break;
                }
            case 3:
                {
                    if(GUI.Button(new Rect(5, 20, 100, 25), "关闭窗口"))
                    {
                        shows[1] = false;
                    }
                    break;
                }
            case 4:
                {
                    GUI.Button(new Rect(5, 20, 100, 25), "拖动窗口");
                    //该API 写在窗口函数中调用 可以让窗口被
                    //传入Rect参数的重载 作用
                    //鼠标可拖动的窗口的区域
                    GUI.DragWindow(new Rect(0,0,1000,20));
                    break;
                }
        }
    }

    public Rect win1Pos;
    public Rect win2Pos;
    public Rect dragWindPos;
    public bool[] shows = new bool[3] { false, false, false};
    private void OnGUI()
    {
        #region 知识点一 窗口
        //第一个参数id 是窗口的唯一ID 不要和别的窗口重复
        //委托参数 是表征地 绘制窗口的函数 传入即可
        //id对于我们来说 有一个重要作用 除了区分不同窗口 还可以在一个函数中处理多个窗口的逻辑
        if(GUI.Button(new Rect(5,10,100,100), shows[0] ? "关闭窗口" : "打开窗口"))
        {
            shows[0] = !shows[0];
        }
        if (shows[0])
        {
            GUI.Window(1, win1Pos, DrawWindow, "测试窗口1");
        }
        #endregion

        #region 知识点二 模态窗口
        //模态窗口 可以让其它控件不再有用
        //你可以理解窗口在最上层 其它按钮都点击不到了
        //只能点击该窗口上的控件
        if (GUI.Button(new Rect(5, 150, 100, 100), shows[1] ? "关闭窗口" : "打开窗口"))
        {
            shows[1] = !shows[1];
        }
        if (shows[1])
        {
            GUI.ModalWindow(3, win2Pos, DrawWindow, "模态窗口");
        }
        #endregion

        #region 知识点三 拖动窗口
        //位置赋值只是前提
        if (GUI.Button(new Rect(5, 290, 100, 100), shows[2] ? "关闭窗口" : "打开窗口"))
        {
            shows[2] = !shows[2];
        }
        if (shows[2])
        {
            dragWindPos = GUI.Window(4, dragWindPos, DrawWindow, "拖动窗口");
        }
        #endregion
    }
}
